package com.cskaoyan.javase.basic._2variable._5cast;
/**
 * 表达式的类型提升
 * 如果表达式当中存在多种数据类型"变量"参与运算，由于表达式的运算结果是唯一的
 * 所以结果变量的数据类型将会提升到"最大取值范围"的那个。
 * 最大的是double
 *
 * 注意事项:
 *      1.只要表达式中有任何一个变量参与运算,那么就遵循表达式的类型提升
 *      2.byte,short,char之间参与运算,结果直接提升到int,而不是其他的
 *      3.表达式中,一旦存在字符串参与"+"拼接运算,那么结果一定是字符串
 *
 * @since 17:23
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        int a = 10;
        byte b = 20;
        // char类型本质是存储编码值,所以它可以直接用正整数赋值
        char c = 30;
        float d = 40;
        float result = a + b + c + d;
        double e = 50;
        double result2 = a + b + c + d + e;

        byte b1 = 10;
        byte b2 = 10;
        byte b3 = 10;
        int result3 = b1 + b2 + b3;

        String str = "hello";
        String result4 = a + b + c + d + e + str;

    }
}
